package mols;

import javax.microedition.location.AddressInfo;
import javax.microedition.location.Landmark;
import javax.microedition.location.QualifiedCoordinates;

/**
 * Estensione della classe <code>Landmark</code> delle Location API. I campi
 * aggiunti gestiscono la posizione del punto di interesse rispetto a quella
 * del mobile.
 */
public class POI extends Landmark {

    private double distanceFromMe;
    private double distanceFromSearchCentre;
    private boolean valid;

    /**
     * Il costruttore della classe utilizza i parametri per istanziare
     * l'oggetto della classe padre.
     */
    public POI(String name, String description, 
            QualifiedCoordinates qc, AddressInfo ai){
        super(name, description, qc, ai);
        distanceFromMe = -1;
        distanceFromSearchCentre = -1;
        valid = false;
    }

    /**
     * Restituisce la distanza, in metri, di questo punto geografico rispetto
     * al centro di ricerca.
     *
     * @return la distanza di cui sopra.
     */
    public double getDistanceFromSearchCentre(){
        return distanceFromSearchCentre;
    }

    /**
     * Imposta la distanza di questo punto geografico dal centro della ricerca.
     *
     * @param newDistance la distanza, in metri, di cui sopra.
     */
    public void setDistanceFromSearchCentre(double newDistance){
        distanceFromSearchCentre = newDistance;
    }

    /**
     * Restituisce la distanza, in metri, di questo punto geografico rispetto al
     * mobile.
     */
    public double getDistanceFromMe(){
        return distanceFromMe;
    }

    /**
     * Imposta la distanza di questo punto geografico dal mobile.
     *
     * @param newDistance la distanza, in metri, di cui sopra.
     */
    public void setDistanceFromMe(double newDistance){
        distanceFromMe = newDistance;
    }

    /**
     * Verifica la validit&agrave; di questo punto geografico.
     *
     * @return <code>true</code> se il punto &egrave; valido, <code>false</code>
     *      altrimenti.
     */
    public boolean isValid(){
        return valid;
    }

    /**
     * Imposta la validit&agrave; di questo punto geografico.
     *
     * @param valid il flag di validit&agrave; di cui sopra.
     */
    public void setValid(boolean valid){
        this.valid = valid;
    }
}
